<template>
	<view class="">
		<!-- 搜索框页面 -->
		<view class="uni-search-box">
			<uni-search-bar 
			@input="input" 
			class="uni-search-item" 
			clearButton="always"
			placeholder="请输入内容"
			focus="true"
			radius="100"
			></uni-search-bar>
		</view>
		<!-- 搜索信息展示 -->
		<view class="search-content">
			<view class="search-content-item"  v-for="(item,index) in searchlist" :key="index">
				<!-- 左侧商品信息描述 -->
				<view class="search-content-text">
					{{item.goods_name}}
				</view>
				<!-- 右侧小图标 -->
				<uni-icons type="right" size="30"></uni-icons>
			</view>
		</view>
		<!-- 搜索历史展示区域 -->
		<view class="history-box" v-show="showhistory">
				<!-- 搜索历史标题区域 -->
				<view class="history-title" >
					<text>搜索历史</text>
					<uni-icons type="trash" size="20" @click="clearhistory"></uni-icons>
				</view>
				<!-- 搜索历史列表区域 -->
				<view class="history-list">
					<view class="histor-tap" 
					v-for="(item,index) in historylist" 
					:key="index" @click="gotogoodslist(item)">
						{{item}}
					</view>
				</view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				// 设置一个定时器储存变量
				timer:null,
				keyword:"",
				//设置一个存储搜索商品变量
				searchlist:[],
				//定义一个变量存储搜索历史数据
				historylist:[],
				// 定义一个变量控制历史记录列表的显示和隐藏
				showhistory:true
			};
		},
		onLoad() {
			this.historylist=JSON.parse(uni.getStorageSync("hislist"))||[]
		},
		methods:{
			// 搜索框事件回调函数
			input(e){
					if(this.timer)
					 clearTimeout(this.timer)
					// 做一下事件防抖,防止不停触发该函数
					this.timer=setTimeout(()=>{
						this.keyword=e.trim()
						// console.log(this.keyword);
						// 调用getsearchinfo函数获取搜索数据
						this.getsearchinfo()
						//把搜索关键词存储在搜索历史变量中
						// 数组的unshift方法,给数组最前面添加一个数据
						if(this.keyword!==""){
							// 搜索框非空把搜索关键字存储在历史里表中
							if(this.historylist.indexOf(this.keyword)==-1)
							//搜索框非空控制搜索列表区域不展示
							//利用数组方法indexof（）判断数组是否有指定字符串，如果有返回下标，没有则返回-1
							{
								this.historylist.unshift(this.keyword)
								uni.setStorageSync("hislist",JSON.stringify(this.historylist))
							}
							this.showhistory=false
						}
						if(this.keyword==""){
							this.showhistory=true
						}
						// console.log(this.historylist);
					},1000)
				
			},
			//获取搜索页面数据函数
			getsearchinfo(){
				uni.request({
					url:"https://api-hmugo-web.itheima.net/api/public/v1/goods/qsearch",
					method:"GET",
					data:{
						query:this.keyword
					},
					success: ({data:res}) => {
						this.searchlist=res.message
						// console.log(this.searchlist);
					}
				})
			},
			//清空搜索历史
			clearhistory(){
				this.historylist=[];
				uni.setStorageSync("hislist","[]")
			},
			// 跳转商品页面函数
			gotogoodslist(item){
				// console.log("你好");
				uni.navigateTo({
					url:`/subpckA/good_list/good_list?query=${item}`,
					// 目前非tabbar路由编程式跳转携带参数写法
				})
			}
		}
	}
</script>

<style lang="scss">
	//搜索框样式
	.uni-search-box{
		background-color: #ffaf47;
		.uni-search-item{
			// background-color: red;
			// border-radius: 15px;
		}
	}
	//搜索信息页面样式
	.search-content{
		padding: 0 8px;
		.search-content-item{
			display: flex;
			justify-content: space-between;
			align-items: center;
			padding: 13px 0;
			border: 1px solid #efefef;
			font-size: 12px;
			.search-content-text{
				white-space:nowrap;
				overflow: hidden;
				text-overflow: ellipsis;
			}
		}
	}
	//搜索历史页面样式
	.history-box{
		.history-title{
			display: flex;
			justify-content: space-between;
			align-items: center;
			padding: 2px 8px;
			height: 40px;
			border: 1px solid #efefef;
			font-size: 13px;
		}
		.history-list{
			display: flex;
			flex-wrap: wrap;
			.histor-tap{
				font-size: 13px;
				// width: 3rem;
				height: 30px;
				background-color: ghostwhite;
				margin-right: 5px;
				margin-top: 5px;
				line-height: 30px;
				text-align: center;
				padding: 1px 20px;
			}
		}
	}
</style>
